#include "CursosCartelera.h"
#include <iostream>

CursosCartelera::CursosCartelera() {
	add(this->cursos);
	set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
	// Crea el treemodel con las columnas especificadas en el .h y le setea
	// el treemodel al treeview
	modelo_cursos = Gtk::TreeStore::create(this->columnas);
	cursos.set_model(modelo_cursos);

	// Agrega a la vista las columnas a mostrar
	cursos.append_column("Codigo", columnas.columna_codigo);
	cursos.append_column("Descripcion", columnas.columna_descripcion);

	show_all_children();
}

void CursosCartelera::agregarClase(std::string codigo, std::string descripcion) {
	this->agregarFila(codigo, descripcion);
}

void CursosCartelera::agregarCurso(std::string codigo, std::string descripcion) {
	this->agregarFila(codigo, descripcion);
}

void CursosCartelera::agregarFila(std::string codigo, std::string descripcion) {
	Gtk::TreeModel::Row fila_cursos = *(modelo_cursos->append());
	fila_cursos[columnas.columna_codigo] = codigo;
	fila_cursos[columnas.columna_descripcion] = descripcion;
}

void CursosCartelera::agregarClaseDeCurso(std::string codCurso,
		std::string codClase, std::string descripcion) {
	Gtk::TreeModel::Children children = modelo_cursos->children();
	Gtk::TreeModel::Children::iterator it;
	bool agregado = false;
	it = children.begin();
	while ((!agregado) && (it != children.end())) {
		Gtk::TreeModel::Row row = *it;
		if (row[columnas.columna_codigo] == codCurso) {
			Gtk::TreeModel::Row fila_hija = *(modelo_cursos->append(row.children()));
			fila_hija[columnas.columna_codigo] = codClase;
			fila_hija[columnas.columna_descripcion] = descripcion;
			agregado = true;
		}
		it++;
	}
}

